<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow: flow::log::Verbosity_config Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceflow.html">flow</a></li><li class="navelem"><a class="el" href="namespaceflow_1_1log.html">log</a></li><li class="navelem"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="classflow_1_1log_1_1Verbosity__config-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">flow::log::Verbosity_config Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from a config source (like an options file) in concise form and apply it to a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> object.  
 <a href="classflow_1_1log_1_1Verbosity__config.html#details">More...</a></p>

<p><code>#include &lt;verbosity_config.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad90642c12d92b59954114a06c22217da"><td class="memItemLeft" align="right" valign="top"><a id="ad90642c12d92b59954114a06c22217da" name="ad90642c12d92b59954114a06c22217da"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Component_sev_pair_seq</b> = std::vector&lt; std::pair&lt; std::string, <a class="el" href="namespaceflow_1_1log.html#a5c602384e6fe9d7642740ac2fae4ad04">Sev</a> &gt; &gt;</td></tr>
<tr class="memdesc:ad90642c12d92b59954114a06c22217da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for the configuration capable of being encapsulated by <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a>. <br /></td></tr>
<tr class="separator:ad90642c12d92b59954114a06c22217da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab5490488a1341ea880094729df8ba4b7"><td class="memItemLeft" align="right" valign="top"><a id="ab5490488a1341ea880094729df8ba4b7" name="ab5490488a1341ea880094729df8ba4b7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Verbosity_config</b> ()</td></tr>
<tr class="memdesc:ab5490488a1341ea880094729df8ba4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> that resets all severity config and sets the default/catch-all to <a class="el" href="classflow_1_1log_1_1Config.html#a94e6c81a4e3dd9b41c1b468f7d7c1a90" title="Recommended default/catch-all most-verbose-severity value if no specific config is given.">Config::S_MOST_VERBOSE_SEV_DEFAULT</a>. <br /></td></tr>
<tr class="separator:ab5490488a1341ea880094729df8ba4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afaf5a5fb1d9e56946403072eadaa3c10"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afaf5a5fb1d9e56946403072eadaa3c10">parse</a> (std::istream &amp;is)</td></tr>
<tr class="memdesc:afaf5a5fb1d9e56946403072eadaa3c10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializes <code>*this</code> from a standard input stream.  <a href="classflow_1_1log_1_1Verbosity__config.html#afaf5a5fb1d9e56946403072eadaa3c10">More...</a><br /></td></tr>
<tr class="separator:afaf5a5fb1d9e56946403072eadaa3c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a64ac2ee6eaf09fc9de6199916d0388"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a3a64ac2ee6eaf09fc9de6199916d0388">apply_to_config</a> (<a class="el" href="classflow_1_1log_1_1Config.html">Config</a> *target_config)</td></tr>
<tr class="memdesc:a3a64ac2ee6eaf09fc9de6199916d0388"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applies <code>*this</code> to to the given <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a>.  <a href="classflow_1_1log_1_1Verbosity__config.html#a3a64ac2ee6eaf09fc9de6199916d0388">More...</a><br /></td></tr>
<tr class="separator:a3a64ac2ee6eaf09fc9de6199916d0388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02443dac5b22a39d2be192229700f265"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265">last_result_message</a> () const</td></tr>
<tr class="memdesc:a02443dac5b22a39d2be192229700f265"><td class="mdescLeft">&#160;</td><td class="mdescRight">To be used after <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afaf5a5fb1d9e56946403072eadaa3c10" title="Deserializes *this from a standard input stream.">parse()</a> or <code>operator&lt;&lt;</code> or <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a3a64ac2ee6eaf09fc9de6199916d0388" title="Applies *this to to the given log::Config.">apply_to_config()</a>, returns "" on success or a message describing the problem on failure.  <a href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265">More...</a><br /></td></tr>
<tr class="separator:a02443dac5b22a39d2be192229700f265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad71628d526e0933e83d26ef050fc9350"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad90642c12d92b59954114a06c22217da">Component_sev_pair_seq</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad71628d526e0933e83d26ef050fc9350">component_sev_pairs</a> () const</td></tr>
<tr class="memdesc:ad71628d526e0933e83d26ef050fc9350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read-only access to encapsulated config; specifies the verbosity-setting calls to make on a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">Config</a> in order, given as component-name-to-severity pairs, with an empty component name specifying the default severity used when no component name is given.  <a href="classflow_1_1log_1_1Verbosity__config.html#ad71628d526e0933e83d26ef050fc9350">More...</a><br /></td></tr>
<tr class="separator:ad71628d526e0933e83d26ef050fc9350"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a989cce681e783648d2efe1267d473406"><td class="memItemLeft" align="right" valign="top"><a id="a989cce681e783648d2efe1267d473406" name="a989cce681e783648d2efe1267d473406"></a>
static const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>S_ALL_COMPONENT_NAME_ALIAS</b></td></tr>
<tr class="memdesc:a989cce681e783648d2efe1267d473406"><td class="mdescLeft">&#160;</td><td class="mdescRight">String that <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afaf5a5fb1d9e56946403072eadaa3c10" title="Deserializes *this from a standard input stream.">Verbosity_config::parse()</a> treats as the default/catch-all verbosity's "component" specifier. <br /></td></tr>
<tr class="separator:a989cce681e783648d2efe1267d473406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dba58a66513ec3f58a17660af54a639"><td class="memItemLeft" align="right" valign="top"><a id="a8dba58a66513ec3f58a17660af54a639" name="a8dba58a66513ec3f58a17660af54a639"></a>
static const char&#160;</td><td class="memItemRight" valign="bottom"><b>S_TOKEN_SEPARATOR</b></td></tr>
<tr class="memdesc:a8dba58a66513ec3f58a17660af54a639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separates component/severity pairs in a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> specifier string. <br /></td></tr>
<tr class="separator:a8dba58a66513ec3f58a17660af54a639"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe80e0c5e2d23faafa1646022b7074e4"><td class="memItemLeft" align="right" valign="top"><a id="afe80e0c5e2d23faafa1646022b7074e4" name="afe80e0c5e2d23faafa1646022b7074e4"></a>
static const char&#160;</td><td class="memItemRight" valign="bottom"><b>S_PAIR_SEPARATOR</b></td></tr>
<tr class="memdesc:afe80e0c5e2d23faafa1646022b7074e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separates component and severity within each pair in a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> specifier string. <br /></td></tr>
<tr class="separator:afe80e0c5e2d23faafa1646022b7074e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="related" name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p >(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:ab7770a6970cce952c422c27f0bf57d8d"><td class="memItemLeft" align="right" valign="top">std::istream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ab7770a6970cce952c422c27f0bf57d8d">operator&gt;&gt;</a> (std::istream &amp;is, <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val)</td></tr>
<tr class="memdesc:ab7770a6970cce952c422c27f0bf57d8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializes a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> from a standard input stream by invoking <code>val.parse(is)</code>.  <a href="classflow_1_1log_1_1Verbosity__config.html#ab7770a6970cce952c422c27f0bf57d8d">More...</a><br /></td></tr>
<tr class="separator:ab7770a6970cce952c422c27f0bf57d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf08ca4573526c68e0164a6915b6e44"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a8cf08ca4573526c68e0164a6915b6e44">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val)</td></tr>
<tr class="memdesc:a8cf08ca4573526c68e0164a6915b6e44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> to a standard output stream.  <a href="classflow_1_1log_1_1Verbosity__config.html#a8cf08ca4573526c68e0164a6915b6e44">More...</a><br /></td></tr>
<tr class="separator:a8cf08ca4573526c68e0164a6915b6e44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfd655adc908d249fe66baf6e8e426e6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#abfd655adc908d249fe66baf6e8e426e6">operator==</a> (const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val1, const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val2)</td></tr>
<tr class="memdesc:abfd655adc908d249fe66baf6e8e426e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for exact equality of two <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> objects.  <a href="classflow_1_1log_1_1Verbosity__config.html#abfd655adc908d249fe66baf6e8e426e6">More...</a><br /></td></tr>
<tr class="separator:abfd655adc908d249fe66baf6e8e426e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf78eb12c635e06cb37dfbcaac70144d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html#acf78eb12c635e06cb37dfbcaac70144d">operator!=</a> (const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val1, const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;val2)</td></tr>
<tr class="memdesc:acf78eb12c635e06cb37dfbcaac70144d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>!(val1 == val2)</code>.  <a href="classflow_1_1log_1_1Verbosity__config.html#acf78eb12c635e06cb37dfbcaac70144d">More...</a><br /></td></tr>
<tr class="separator:acf78eb12c635e06cb37dfbcaac70144d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from a config source (like an options file) in concise form and apply it to a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> object. </p>
<p >Put simply, one can read a string like <code>"ALL:2;COOL_COMPONENT:4;ANOTHER_COMPONENT:TRACE"</code> from an <code>istream</code> via <code>&gt;&gt;</code>; then <code>this-&gt;apply_to_config(&amp;cfg)</code>, where <code>cfg</code> is a <code><a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a></code>; resulting in the necessary <code><a class="el" href="classflow_1_1log_1_1Config.html#ac562cc0132f6cfa81b42c332400033ae" title="Sets the default verbosity to the given value, to be used by subsequent output_whether_should_log() c...">Config::configure_default_verbosity()</a></code> and <code><a class="el" href="classflow_1_1log_1_1Config.html#a2f266ee7e22d1090ab4de76e532cab89" title="Like configure_component_verbosity(), but the component is to be specified by its registered string n...">Config::configure_component_verbosity_by_name()</a></code> calls that will set the default verbosity to INFO and those specific components' verbosities to DATA and TRACE respectively in order. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a3a64ac2ee6eaf09fc9de6199916d0388" name="a3a64ac2ee6eaf09fc9de6199916d0388"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a64ac2ee6eaf09fc9de6199916d0388">&#9670;&nbsp;</a></span>apply_to_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool flow::log::Verbosity_config::apply_to_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1log_1_1Config.html">Config</a> *&#160;</td>
          <td class="paramname"><em>target_config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Applies <code>*this</code> to to the given <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a>. </p>
<p >Typically one would parse into <code>*this</code> first.</p>
<p >Returns <code>true</code> if this succeeded; else <code>false</code>. <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265" title="To be used after parse() or operator&lt;&lt; or apply_to_config(), returns &quot;&quot; on success or a message descr...">last_result_message()</a> can then be invoked to get further details suitable for display to the user in the case of <code>false</code>. Typically this would only occur, as of this writing, on an unknown component name according to what has been registered on <code>*target_config</code>.</p>
<p >If <code>true</code> returned, the <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">Config</a> verbosity config is completely overwritten; otherwise it is reset and completely overwritten but may represent only a partial application (valid but typically not advisable to use).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target_config</td><td>The <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> to reset. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if and only if successfully applied. See also <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265" title="To be used after parse() or operator&lt;&lt; or apply_to_config(), returns &quot;&quot; on success or a message descr...">last_result_message()</a>. </dd></dl>

</div>
</div>
<a id="ad71628d526e0933e83d26ef050fc9350" name="ad71628d526e0933e83d26ef050fc9350"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad71628d526e0933e83d26ef050fc9350">&#9670;&nbsp;</a></span>component_sev_pairs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad90642c12d92b59954114a06c22217da">Verbosity_config::Component_sev_pair_seq</a> &amp; flow::log::Verbosity_config::component_sev_pairs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read-only access to encapsulated config; specifies the verbosity-setting calls to make on a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">Config</a> in order, given as component-name-to-severity pairs, with an empty component name specifying the default severity used when no component name is given. </p>
<p >The assumed semantics as applied to a given <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> <code>cfg</code> are as follows:</p><ol type="1">
<li>If empty, or the first pair's component name is <em>not</em> "", then act as-if there was an additional front-inserted pair <code>("", <a class="el" href="classflow_1_1log_1_1Config.html#a94e6c81a4e3dd9b41c1b468f7d7c1a90" title="Recommended default/catch-all most-verbose-severity value if no specific config is given.">Config::S_MOST_VERBOSE_SEV_DEFAULT</a>)</code>.</li>
<li>For the first pair: <code>cfg.configure_default_verbosity(v, true);</code>, where <code>v</code> is the <a class="el" href="namespaceflow_1_1log.html#a5c602384e6fe9d7642740ac2fae4ad04" title="Enumeration containing one of several message severity levels, ordered from highest to lowest.">log::Sev</a> in that slot. In other words the config is reset, and the catch-all default verbosity is initialized to that severity.</li>
<li>For each subsequent pair <code>(name, v)</code>:<ul>
<li>If the <code>name</code> is "": <code>cfg.configure_default_verbosity(v, false);</code>.</li>
<li>Otherwise: <code>cfg.configure_component_verbosity_by_name(v, name);</code>.</li>
</ul>
</li>
</ol>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a02443dac5b22a39d2be192229700f265" name="a02443dac5b22a39d2be192229700f265"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02443dac5b22a39d2be192229700f265">&#9670;&nbsp;</a></span>last_result_message()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string &amp; flow::log::Verbosity_config::last_result_message </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>To be used after <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afaf5a5fb1d9e56946403072eadaa3c10" title="Deserializes *this from a standard input stream.">parse()</a> or <code>operator&lt;&lt;</code> or <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a3a64ac2ee6eaf09fc9de6199916d0388" title="Applies *this to to the given log::Config.">apply_to_config()</a>, returns "" on success or a message describing the problem on failure. </p>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="afaf5a5fb1d9e56946403072eadaa3c10" name="afaf5a5fb1d9e56946403072eadaa3c10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afaf5a5fb1d9e56946403072eadaa3c10">&#9670;&nbsp;</a></span>parse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool flow::log::Verbosity_config::parse </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deserializes <code>*this</code> from a standard input stream. </p>
<p >Reads a single space-delimited token from the given stream. Separates that into a sequence of <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a8dba58a66513ec3f58a17660af54a639" title="Separates component/severity pairs in a Verbosity_config specifier string.">S_TOKEN_SEPARATOR</a>-delimited pairs, each representing an element of what will be returnable via <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad71628d526e0933e83d26ef050fc9350" title="Read-only access to encapsulated config; specifies the verbosity-setting calls to make on a Config in...">component_sev_pairs()</a>, in order. Each pair is to be in one of the following forms:</p><ul>
<li>No <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afe80e0c5e2d23faafa1646022b7074e4" title="Separates component and severity within each pair in a Verbosity_config specifier string.">S_PAIR_SEPARATOR</a>; just a Severity readable via its <code>istream&lt;&lt;</code> operator (as of this writing, a number "1", "2", ... or a string "WARNING", "INFO", etc.). Then this is taken to be the severity, and the component name for <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad71628d526e0933e83d26ef050fc9350" title="Read-only access to encapsulated config; specifies the verbosity-setting calls to make on a Config in...">component_sev_pairs()</a> is taken to be as-if "" (the default).</li>
<li>":sev" (where the colon stands for <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#afe80e0c5e2d23faafa1646022b7074e4" title="Separates component and severity within each pair in a Verbosity_config specifier string.">S_PAIR_SEPARATOR</a>): As-if simply "sev" (previous bullet point).</li>
<li>"ALL:sev" (ditto re. colon): <code>ALL</code> is <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a989cce681e783648d2efe1267d473406" title="String that Verbosity_config::parse() treats as the default/catch-all verbosity&#39;s &quot;component&quot; specifi...">S_ALL_COMPONENT_NAME_ALIAS</a>: Same meaning as previous bullet point.</li>
<li>"name:sev" (ditto re. colon): <code>name</code> is the component name; <code>sev</code> is the Severity readable via its <code>istream&lt;&lt;</code> operator.</li>
</ul>
<p >Returns <code>true</code> if the token was legal; else <code>false</code>. <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265" title="To be used after parse() or operator&lt;&lt; or apply_to_config(), returns &quot;&quot; on success or a message descr...">last_result_message()</a> can then be invoked to get further details suitable for display to the user in the case of <code>false</code>.</p>
<p >If <code>true</code> returned, the existing payload is completely overwritten. Otherwise it is untouched.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">is</td><td>Input stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if and only if successfully deserialized. See also <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265" title="To be used after parse() or operator&lt;&lt; or apply_to_config(), returns &quot;&quot; on success or a message descr...">last_result_message()</a>. </dd></dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="acf78eb12c635e06cb37dfbcaac70144d" name="acf78eb12c635e06cb37dfbcaac70144d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf78eb12c635e06cb37dfbcaac70144d">&#9670;&nbsp;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns <code>!(val1 == val2)</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val1</td><td>Object to compare. </td></tr>
    <tr><td class="paramname">val2</td><td>Object to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See above. </dd></dl>

</div>
</div>
<a id="a8cf08ca4573526c68e0164a6915b6e44" name="a8cf08ca4573526c68e0164a6915b6e44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cf08ca4573526c68e0164a6915b6e44">&#9670;&nbsp;</a></span>operator&lt;&lt;()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Serializes a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> to a standard output stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Stream to which to serialize. </td></tr>
    <tr><td class="paramname">val</td><td>Value to serialize. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>os</code>. </dd></dl>

</div>
</div>
<a id="abfd655adc908d249fe66baf6e8e426e6" name="abfd655adc908d249fe66baf6e8e426e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfd655adc908d249fe66baf6e8e426e6">&#9670;&nbsp;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Checks for exact equality of two <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> objects. </p>
<p >(Note that this is not maximally clever, in that if (<code>val1 == val2</code>), then they <em>definitely</em> produce the same <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">Config</a> all else being equal; but if the reverse is true, then it is possible they differently expressed values producing the same actual result. E.g., something like <code>ALL:INFO</code> differs from <code>ALL:WARN;ALL:INFO</code> &ndash; yet they have the same effect. However component names are normalized internally when parsing, so that won't produce false inequality.)</p>
<p >Only <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#ad71628d526e0933e83d26ef050fc9350" title="Read-only access to encapsulated config; specifies the verbosity-setting calls to make on a Config in...">Verbosity_config::component_sev_pairs()</a> is significant in this comparison; <a class="el" href="classflow_1_1log_1_1Verbosity__config.html#a02443dac5b22a39d2be192229700f265" title="To be used after parse() or operator&lt;&lt; or apply_to_config(), returns &quot;&quot; on success or a message descr...">last_result_message()</a> is not.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">val1</td><td>Object to compare. </td></tr>
    <tr><td class="paramname">val2</td><td>Object to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if definitely equal; <code>false</code> if possibly not equal. </dd></dl>

</div>
</div>
<a id="ab7770a6970cce952c422c27f0bf57d8d" name="ab7770a6970cce952c422c27f0bf57d8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7770a6970cce952c422c27f0bf57d8d">&#9670;&nbsp;</a></span>operator&gt;&gt;()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::istream &amp; operator&gt;&gt; </td>
          <td>(</td>
          <td class="paramtype">std::istream &amp;&#160;</td>
          <td class="paramname"><em>is</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classflow_1_1log_1_1Verbosity__config.html">Verbosity_config</a> &amp;&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deserializes a <a class="el" href="classflow_1_1log_1_1Verbosity__config.html" title="Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from ...">Verbosity_config</a> from a standard input stream by invoking <code>val.parse(is)</code>. </p>
<p ><code>val.last_result_message()</code> can be used to glean the success or failure of this operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">is</td><td>Stream from which to deserialize. </td></tr>
    <tr><td class="paramname">val</td><td>Value to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>is</code>. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>log/<a class="el" href="verbosity__config_8hpp.html">verbosity_config.hpp</a></li>
<li>log/<a class="el" href="verbosity__config_8cpp.html">verbosity_config.cpp</a></li>
<li>log/<a class="el" href="verbosity__config__fwd_8hpp.html">verbosity_config_fwd.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 28 2025 22:55:32 for Flow by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
